<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <meta http-equiv="X-UA-Compatible" content="ie=edge">
    <title>递归</title>
</head>
<body>
    <!-- 递归:
            就是自己调用自己，把当前自己先压栈，再调用自己
    -->
    <script>
        function foo(i) {
            if(i < 0) return;
            console.log('begin: ' + i);
            foo(i-1); // foo(1), foo(0)
            console.log('end: ' + i);
        }
        foo(2);

        // 输出 结果
        // begin: 2
        // begin: 1
        // begin: 0
        // end: 0
        // end: 1
        // end: 2


        // 栈内存
            // ST001:
            // ST002:
            // ST003:
            // ST004:
            // ST005:
            // ST006:

        // 堆内存
            // HP001:
            // HP002:
            // HP003:
            // HP004:
    </script>
</body>
</html>